package com.ljs.tranctionldemo.util;

import lombok.AllArgsConstructor;

/**
 * @Description:
 * @Author: liujinsheng
 * @Date: 2021/6/28.
 */
@AllArgsConstructor
public enum SystemEnum implements BaseEnum{
    /**
     * 兼容原响应
     * 成功
     */
    SUCCESS(0, "success"),

    /**
     * 500
     * 系统异常
     */
    SYSTEM_ERROR(10018, "服务拥挤, 请稍后重试"),

    /**
     * 触发限流
     */
    SENTINEL_LIMIT(10012, "业务太火爆, 请稍后重试"),

    /**
     * 访问资源不存在 404
     */
    NOT_FOUND_ERROR(10016, "访问资源不存在"),

    /**
     * 不支持的请求方式
     */
    METHOD_NOT_SUPPORT(10019, "请求不支持"),

    /**
     * 参数异常
     */
    PARAM_ERROR(10020, "参数异常"),

    /**
     * 抛出业务异常
     * @see ServiceException
     */
    BUSINESS_ERROR(10022, "业务繁忙, 请稍后重试"),

    /**
     * rpc 调用异常
     */
    SERVICE_ERROR(10018, "服务拥堵, 请稍后重试"),

    /**
     * rpc 调用超时
     */
    SERVICE_TIMEOUT(10021, "服务繁忙, 请稍后重试"),

    /**
     * rpc 调用限流
     */
    SERVICE_LIMIT(10012, "业务太火爆了, 请稍后重试"),

    /**
     * 业务服务异常
     */
    SERVICE_EXCEPTION(10022, "服务太拥堵, 请稍后重试"),

    /**
     * 未登录
     */
    NON_LOGIN(10010, "未登录"),

    /**
     * ACCESS TOKEN登录过期
     */
    EXPIRE_ACCESS_TOKEN(10014, "登录过期"),

    /**
     * REFRESH TOKEN登录过期
     */
    EXPIRE_REFRESH_TOKEN(10015, "登录过期"),
    ;

    private int code;

    private String msg;

    @Override
    public int getCode() {
        return this.code;
    }
    @Override
    public String getMsg() {
        return this.msg;
    }
}
